#Clase que se encarga de todo lo relacionado con la ordenes como lo es
#crear ordenes,mostrarlas y generar la facura
class OrdensController < ApplicationController
  # GET /ordens
  # GET /ordens.xml
# Metodo que muestra todas las ordenes hechas por un cliente
  def index
    @ordens = Orden.all(:conditions =>["cliente_id = ?", session[:cliente_id]])
    @color
    @contcolor=0
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @ordens }
    end
  end
  
  # GET /ordens/1
  # GET /ordens/1.xml
 
#  Metodo que muestra la orden generada por cliente y adicionalmete
#  se genera el codigo QR en la orden que se muestra
 
  def show
    @orden = Orden.find(params[:id])
    @cliente= Cliente.find(:first, :conditions => [" id = ?",session[:cliente_id] ])
    @direccion= Direccion.find(:first, :conditions => [" id = ?",@orden.direccion_id ])
    @paquete= Paquete.all(:conditions => [" orden_id = ?",@orden.id ])
    @total=0
    @color
    @contcolor=0
    @paquete.each do |p|
    	p.update_attribute('costo', p.peso*3)
      @total = @total + p.costo
    end
    @orden.tracking = @orden.id
    @subtotal=@total
    @iva= @total *0.12
    @total = @total +@iva

      @qr = "http://chart.apis.google.com/chart?chs=220x220&cht=qr&chl=http://localhost:3000/ordens/" + @orden.id.to_s


    respond_to do |format|
      format.html # show.html.erb
      format.pdf { render :format=>false}
      format.xml  { render :xml => @orden }
    end
  end

  # GET /ordens/new
  # GET /ordens/new.xml

#  Metodo que se encarga de montar la interfaz para que el cliente haga su orden
  def new
    @orden = Orden.new
    @orden.paquetes.build
    @pagos = Pago.all(:conditions => ["cliente_id= ?", session[:cliente_id]])
    @direcciones = Direccion.all(:conditions =>["cliente_id = ?", session[:cliente_id]])
    @body_tag = '<body onload="initialize()">'

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @orden }
    end
  end

  # GET /ordens/1/edit
  def edit
    @orden = Orden.find(params[:id])
  end

  # POST /ordens
  # POST /ordens.xml

#  Metodo que se encarga de crear la orden en la base de datos despues que el cliente genera su orden
  def create
    @orden = Orden.new(params[:orden])
    @direcciones = Direccion.all(:conditions =>["cliente_id = ?", session[:cliente_id]])
    @pagos = Pago.all(:conditions => ["cliente_id= ?", session[:cliente_id]])
     respond_to do |format|
       
        if @orden.save
          format.html { redirect_to(@orden, :notice => 'Orden was successfully created.') }
          format.xml  { render :xml => @orden, :status => :created, :location => @orden }
        else
          format.html { render :action => "new" }
          format.xml  { render :xml => @orden.errors, :status => :unprocessable_entity }
        end
       end
    end

 

  # PUT /ordens/1
  # PUT /ordens/1.xml
  def update
    @orden = Orden.find(params[:id])

    respond_to do |format|
      if @orden.update_attributes(params[:orden])
        format.html { redirect_to(@orden, :notice => 'Orden was successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @orden.errors, :status => :unprocessable_entity }
      end
    end
  end

  def menu
    render :template => "ordens/menu"
  end

  # DELETE /ordens/1
  # DELETE /ordens/1.xml
  def destroy
    @orden = Orden.find(params[:id])
    @orden.destroy

    respond_to do |format|
      format.html { redirect_to(ordens_url) }
      format.xml  { head :ok }
    end
  end
end
